package cn.iocoder.yudao.module.of.controller.admin.documentinfo.vo;

import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

import com.alibaba.excel.annotation.*;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;

@Schema(description = "管理后台 - 公文信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DocumentInfoRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "3558")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "送文单位ID", example = "21903")
    @ExcelProperty("送文单位ID")
    private Long sendDocDeptId;

    @Schema(description = "送文单位I名称", example = "芋艿")
    @ExcelProperty("送文单位I名称")
    private String sendDocDeptName;

    @Schema(description = "收文日期")
    @ExcelProperty("收文日期")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate receiptDocDate;

    @Schema(description = "公文编号")
    @ExcelProperty("公文编号")
    private String docCode;

    @Schema(description = "公文名称", example = "李四")
    @ExcelProperty("公文名称")
    private String docName;

    @Schema(description = "收件人ID", example = "28245")
    @ExcelProperty("收件人ID")
    private Long receiptUserId;

    @Schema(description = "收入人姓名", example = "张三")
    @ExcelProperty("收入人姓名")
    private String receiptUserName;

    @Schema(description = "经办人ID", example = "24672")
    @ExcelProperty("经办人ID")
    private Long handleUserId;

    @Schema(description = "经办人姓名", example = "芋艿")
    @ExcelProperty("经办人姓名")
    private String handleUserName;

    @Schema(description = "附件")
    @ExcelProperty("附件")
    private String attachs;

    @Schema(description = "附件")
    @ExcelProperty("附件")
    private List<FileDO> attachList;

    @Schema(description = "主办部门ID", example = "16074")
    @ExcelProperty("主办部门ID")
    private Long mainRespDeptId;

    @Schema(description = "主办部门名称", example = "赵六")
    @ExcelProperty("主办部门名称")
    private String mainRespDeptName;


    @Schema(description = "任务生成人", example = "1")
    private Long taskGenUserId;

    @Schema(description = "生成任务人", example = "张三")
    private String taskGenUserName;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "任务数")
    private Integer taskNum;
    @Schema(description = "完成数")
    private Integer closedTaskNum;

    @Schema(description = "任务列表")
    private List TaskList;

    /**
     * 是否可编辑
     */
    private Boolean isEdit;

    /**
     * 任务创建者
     */
    private Long creator;

}